Ejemplo n.º 1
0
def view(u, id):
    message = Messages.one(id=id)
    # if u.id == mail.receiver_id or u.id == mail.sender_id:
    if u.id in [message.receiver_id, message.sender_id]:
        return render_template('mail/detail.html', message=message)
    else:
        return redirect(url_for('py_mail.index'))
Ejemplo n.º 2
0
def view(id):
    mail = Messages.one(id=id)
    u = current_user()
    if u.id in [mail.receiver_id, mail.sender_id]:
        return render_template('mail/detail.html', mail=mail)
    else:
        return redirect(url_for('.index'))
Ejemplo n.º 3
0
def view(id):
    message = Messages.one(id=id)
    u = current_user()
    # if u.id == mail.receiver_id or u.id == mail.sender_id:
    if u.id in [message.receiver_id, message.sender_id]:
        return render_template('mail/detail.html', message=message, user=u)
    else:
        return redirect(url_for('.index'))
Ejemplo n.º 4
0
def view(id):
    mail = Messages.one(id=id)
    u = current_user()
    # if u.id == mail.receiver_id or u.id == mail.sender_id:
    if u.id in [mail.receiver_id, mail.sender_id]:
        send_name = User.one(id=mail.sender_id).username
        recev_name = User.one(id=mail.receiver_id).username
        return render_template('mail/detail.html', mail=mail, sname=send_name, rname=recev_name)
    else:
        return redirect(url_for('.index'))
Ejemplo n.º 5
0
def view(id):
    message = Messages.one(id=id)
    u = current_user()
    token = new_csrf_token()
    # if u.id == mail.receiver_id or u.id == mail.sender_id:
    if u.id in [message.receiver_id, message.sender_id]:
        sender = User.one(id=message.sender_id)
        receiver = User.one(id=message.receiver_id)
        return render_template('mail/detail.html', message=message, sender=sender, receiver=receiver, token=token)
    else:
        return redirect(url_for('.index'))
Ejemplo n.º 6
0
def view(id):
    message = Messages.one(id=id)
    u = current_user()
    sender = User.one(id=message.sender_id)
    receiver = User.one(id=message.receiver_id)
    if u.id in [message.receiver_id, message.sender_id]:
        return render_template('mail/detail.html',
                               message=message,
                               user=u,
                               sender=sender,
                               receiver=receiver)
    else:
        return redirect(url_for('.index'))
Ejemplo n.º 7
0
def view(id):
    message = Messages.one(id=id)
    u = current_user()
    # if u.id == message.receiver_id or u.id == message.sender_id:
    if u.id in [message.receiver_id, message.sender_id]:
        s = User.one(id=message.sender_id)
        sender = s.username
        r = User.one(id=message.receiver_id)
        receiver = r.username
        return render_template('message/detail.html',
                               message=message,
                               sender=sender,
                               receiver=receiver)
    else:
        return redirect(url_for('.index'))
Ejemplo n.º 8
0
def view(id):
    message: Messages = Messages.one(id=id)
    u = current_user()
    is_sender = u.id == message.sender_id
    is_receiver = u.id == message.receiver_id
    if is_receiver or is_sender:

        if is_receiver and not message.been_read:
            message.been_read = True
            message.save()
            key = 'message_id_{}.message'.format(message.id)
            data_cache.delete(key)

        return render_template('mail/detail.html', message=message, user=u)
    else:
        return abort(404)
Ejemplo n.º 9
0
def cached_message_id2message(message_id):
    """
    根据Message id 返回 Message 对象。
    如果缓存命中,则从缓存中拉取包含 Message 信息的字典,使用get_model得到Message对象。
    如果缓存穿透,则从数据库查询,拿到数据后将数据序列化后存储到redis。
    """
    key = 'message_id_{}.message'.format(message_id)
    try:
        # 拿到json 格式的数据
        v = data_cache[key]
    except KeyError:
        # 如果没有缓存
        message = Messages.one(id=message_id)
        v = json.dumps(message.json())
        data_cache.set(key, v)
        log('缓存miss,向数据库拉取数据,重建缓存')
        return message
    else:
        # json序列化为dict,dict生成Info对象
        d = json.loads(v)
        message = Messages.get_model(d)
        log('缓存命中,直接使用')
        return message