def register_wbfile_on_db(session, tid, rtip_id, uploaded_file): rtip, itip = session.query(models.ReceiverTip, models.InternalTip) \ .filter(models.ReceiverTip.id == rtip_id, models.ReceiverTip.internaltip_id == models.InternalTip.id, models.InternalTip.tid == tid).one() itip.update_date = rtip.last_access = datetime_now() if itip.crypto_tip_pub_key: for k in ['name', 'description', 'type', 'size']: uploaded_file[k] = base64.b64encode( GCE.asymmetric_encrypt(itip.crypto_tip_pub_key, text_type(uploaded_file[k]))) new_file = models.WhistleblowerFile() new_file.name = uploaded_file['name'] new_file.description = uploaded_file['description'] new_file.content_type = uploaded_file['type'] new_file.size = uploaded_file['size'] new_file.receivertip_id = rtip_id new_file.filename = uploaded_file['filename'] session.add(new_file) return serializers.serialize_wbfile(session, tid, new_file)
def register_wbfile_on_db(store, rtip_id, uploaded_file): rtip, itip = store.find((models.ReceiverTip, models.InternalTip), models.ReceiverTip.id == rtip_id, models.InternalTip.id == models.ReceiverTip.internaltip_id).one() itip.update_date = rtip.last_access = datetime_now() new_file = models.WhistleblowerFile() new_file.name = uploaded_file['name'] new_file.description = uploaded_file['description'] new_file.content_type = uploaded_file['type'] new_file.size = uploaded_file['size'] new_file.receivertip_id = rtip_id new_file.file_path = uploaded_file['path'] store.add(new_file) return serializers.serialize_wbfile(store, new_file)
def register_wbfile_on_db(session, tid, rtip_id, uploaded_file): """ Register a file on the database :param session: An ORM session :param tid: A tenant id :param rtip_id: A id of the rtip on which attaching the file :param uploaded_file: A file to be attached :return: A descriptor of the file """ rtip, itip = session.query(models.ReceiverTip, models.InternalTip) \ .filter(models.ReceiverTip.id == rtip_id, models.ReceiverTip.internaltip_id == models.InternalTip.id, models.InternalTip.status != 'closed', models.InternalTip.tid == tid).one() itip.update_date = rtip.last_access = datetime_now() if itip.crypto_tip_pub_key: for k in ['name', 'description', 'type', 'size']: if k == 'size': uploaded_file[k] = str(uploaded_file[k]) uploaded_file[k] = base64.b64encode( GCE.asymmetric_encrypt(itip.crypto_tip_pub_key, uploaded_file[k])) new_file = models.WhistleblowerFile() new_file.name = uploaded_file['name'] new_file.description = uploaded_file['description'] new_file.content_type = uploaded_file['type'] new_file.size = uploaded_file['size'] new_file.receivertip_id = rtip_id new_file.filename = uploaded_file['filename'] session.add(new_file) return serializers.serialize_wbfile(session, new_file)