Example #1
0
def create_message(session, tid, wbtip_id, user_key, receiver_id, content):
    wbtip, itip, rtip_id = session.query(models.WhistleblowerTip, models.InternalTip, models.ReceiverTip.id) \
                                  .filter(models.WhistleblowerTip.id == wbtip_id,
                                          models.ReceiverTip.internaltip_id == wbtip_id,
                                          models.ReceiverTip.receiver_id == receiver_id,
                                          models.InternalTip.id == models.WhistleblowerTip.id,
                                          models.InternalTip.tid == tid).one_or_none()

    if wbtip is None:
        raise errors.ModelNotFound(models.WhistleblowerTip)

    itip.update_date = itip.wb_last_access = datetime_now()

    msg = models.Message()
    msg.receivertip_id = rtip_id
    msg.type = u'whistleblower'

    if itip.crypto_tip_pub_key:
        msg.content = base64.b64encode(GCE.asymmetric_encrypt(itip.crypto_tip_pub_key, content)).decode()
    else:
        msg.content = content

    session.add(msg)
    session.flush()

    ret = serialize_message(session, msg)
    ret['content'] = content

    return ret
Example #2
0
def create_message(session, tid, wbtip_id, receiver_id, content):
    wbtip, itip, rtip_id = db_get(session,
                                  (models.WhistleblowerTip, models.InternalTip, models.ReceiverTip.id),
                                  (models.WhistleblowerTip.id == wbtip_id,
                                   models.ReceiverTip.internaltip_id == wbtip_id,
                                   models.ReceiverTip.receiver_id == receiver_id,
                                   models.InternalTip.id == models.WhistleblowerTip.id,
                                   models.InternalTip.enable_two_way_messages.is_(True),
                                   models.InternalTip.status != 'closed',
                                   models.InternalTip.tid == tid))

    itip.update_date = itip.wb_last_access = datetime_now()

    _content = content
    if itip.crypto_tip_pub_key:
        _content = base64.b64encode(GCE.asymmetric_encrypt(itip.crypto_tip_pub_key, content)).decode()

    msg = models.Message()
    msg.receivertip_id = rtip_id
    msg.type = 'whistleblower'
    msg.content = _content
    session.add(msg)
    session.flush()

    ret = serialize_message(session, msg)
    ret['content'] = content

    return ret
Example #3
0
def create_message(session, tid, user_id, rtip_id, content):
    """
    Transaction for registering a new message
    :param session: An ORM session
    :param tid: A tenant ID
    :param user_id: The user id of the user creating the message
    :param rtip_id: The rtip associated to the message to be created
    :param content: The content of the message
    :return: A serialized descriptor of the message
    """
    rtip, itip = db_access_rtip(session, tid, user_id, rtip_id)

    itip.update_date = rtip.last_access = datetime_now()

    _content = content
    if itip.crypto_tip_pub_key:
        _content = base64.b64encode(
            GCE.asymmetric_encrypt(itip.crypto_tip_pub_key, content)).decode()

    msg = models.Message()
    msg.receivertip_id = rtip.id
    msg.type = 'receiver'
    msg.content = _content
    session.add(msg)
    session.flush()

    ret = serialize_message(session, msg)
    ret['content'] = content
    return ret
Example #4
0
def create_message(store, user_id, rtip_id, request):
    rtip, itip = db_access_rtip(store, user_id, rtip_id)

    itip.update_date = rtip.last_access = datetime_now()

    msg = models.Message()
    msg.content = request['content']
    msg.receivertip_id = rtip.id
    msg.type = u'receiver'
    store.add(msg)

    return serialize_message(store, msg)
Example #5
0
def create_message(store, wbtip_id, receiver_id, request):
    rtip_id, internaltip = store.find(
        (models.ReceiverTip.id, models.InternalTip),
        models.ReceiverTip.internaltip_id == wbtip_id,
        models.InternalTip.id == wbtip_id,
        models.ReceiverTip.receiver_id == receiver_id).one()

    if rtip_id is None:
        raise errors.ModelNotFound(models.ReceiverTip)

    internaltip.update_date = internaltip.wb_last_access = datetime_now()

    msg = models.Message()
    msg.content = request['content']
    msg.receivertip_id = rtip_id
    msg.type = u'whistleblower'
    store.add(msg)

    return serialize_message(store, msg)
Example #6
0
def create_message(session, tid, wbtip_id, receiver_id, request):
    rtip_id, internaltip = session.query(models.ReceiverTip.id, models.InternalTip) \
                                  .filter(models.ReceiverTip.internaltip_id == wbtip_id,
                                          models.InternalTip.id == wbtip_id,
                                          models.ReceiverTip.receiver_id == receiver_id,
                                          models.InternalTip.tid == tid).one_or_none()

    if rtip_id is None:
        raise errors.ModelNotFound(models.ReceiverTip)

    internaltip.update_date = internaltip.wb_last_access = datetime_now()

    msg = models.Message()
    msg.content = request['content']
    msg.receivertip_id = rtip_id
    msg.type = u'whistleblower'
    session.add(msg)
    session.flush()

    return serialize_message(session, msg)
Example #7
0
def create_message(session, tid, user_id, user_key, rtip_id, content):
    rtip, itip = db_access_rtip(session, tid, user_id, rtip_id)

    itip.update_date = rtip.last_access = datetime_now()

    msg = models.Message()
    msg.receivertip_id = rtip.id
    msg.type = u'receiver'

    if itip.crypto_tip_pub_key:
        msg.content = base64.b64encode(GCE.asymmetric_encrypt(itip.crypto_tip_pub_key, content)).decode()
    else:
        msg.content = content

    session.add(msg)
    session.flush()

    ret = serialize_message(session, msg)
    ret['content'] = content
    return ret